home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 101 / CD-ROM 101.iso / compl / maya5ple / Install_MayaPLE5_English.exe / Maya / Data1.cab / createRenderLayerOptionsUI.m < prev    next >
Encoding:
Text File  |  2003-07-17  |  7.0 KB  |  247 lines

  1. // Copyright (C) 1997-2002 Alias|Wavefront,
  2. // a division of Silicon Graphics Limited.
  3. //
  4. // The information in this file is provided for the exclusive use of the
  5. // licensees of Alias|Wavefront.  Such users have the right to use, modify,
  6. // and incorporate this code into other products for purposes authorized
  7. // by the Alias|Wavefront license agreement, without fee.
  8. //
  9. // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  10. // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  11. // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  12. // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  13. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  14. // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. // PERFORMANCE OF THIS SOFTWARE.
  16. //
  17. global proc createRenderLayerOptionsUI (
  18.     string $parent, string $renderer) 
  19. //
  20. //  Procedure Name:
  21. //      createRenderLayerOptionsUI
  22. //
  23. //  Description:
  24. //      Creates the UI in the "Render Layer/Pass Control" 
  25. //        expand/collapse section for the unified render globals tab
  26. //      for the specified renderer.
  27. //
  28. {
  29.     setUITemplate -pushTemplate attributeEditorTemplate;
  30.  
  31.     setParent $parent;
  32.  
  33.     // Set up the spreadsheet filters
  34.     updateRenderLayerFilters;
  35.  
  36.     // If the UI is created already then just update the attribute values.
  37.     if (`columnLayout -exists ($renderer+"RenderLayerLayout")`) {
  38.         updateRenderLayerOptionsUI($renderer);
  39.         return;
  40.     }
  41.  
  42.     columnLayout -adjustableColumn true ($renderer+"RenderLayerLayout");
  43.  
  44.         attrControlGrp -label "Enable Render Layers"
  45.             -attribute "defaultRenderGlobals.renderLayerEnable" 
  46.             -cc ("updateRenderLayerEnableUI(\\\""+$renderer+"\\\")")
  47.             ($renderer+"RenderLayerEnable");
  48.  
  49.     
  50.         attrControlGrp -label "Enable Render Layer Passes"
  51.             -attribute "defaultRenderGlobals.renderLayerPassEnable"
  52.             -cc ("updateRenderLayerPassEnableUI(\\\""+$renderer+"\\\")")
  53.             ($renderer+"RenderLayerPassEnable");
  54.  
  55.         attrControlGrp -label "Enable Global Passes"
  56.             -attribute "defaultRenderGlobals.renderGlobalPassEnable" 
  57.             -cc ("updateRenderGlobalPassEnableUI(\\\""+$renderer+"\\\")")
  58.             ($renderer+"RenderGlobalPassEnable");
  59.  
  60.         separator;
  61.  
  62.         attrControlGrp -label "Output to Subdirectories"
  63.             -attribute "defaultRenderGlobals.renderLayerSubdirs" 
  64.             ($renderer+"RenderLayerSubdirs");
  65.  
  66.         frameLayout
  67.             -label "Render Layers"
  68.             -labelVisible false
  69.             -borderVisible false
  70.             -collapsable false
  71.             ($renderer+"LayerAttrLayout");
  72.  
  73.             columnLayout -adjustableColumn true ($renderer+"LayerLyt");
  74.  
  75.             separator;
  76.  
  77.              selectionConnection -wl -parent ($renderer+"LayerLyt") 
  78.                 ($renderer+"LayerList");
  79.  
  80.             // This spreadSheetEditor control is not automatically removed
  81.             // when its parent is removed, so we must ensure that it is
  82.             // deleted before creating it again.
  83.             //
  84.             if ( `spreadSheetEditor -exists ($renderer+"LayerOutliner")` ) {
  85.                 deleteUI ($renderer+"LayerOutliner");
  86.             }
  87.  
  88.             // The spreadSheetEditor lists the renderable attribute of all
  89.             // of the nodes given by aList, after applying the filter,
  90.             // renderLayerFilter.
  91.             //
  92.             spreadSheetEditor 
  93.                 -mainListConnection ($renderer+"LayerList")
  94.                 -ko false
  95.                 -ln true
  96.                 -fal {"rndr"}
  97.                 -filter renderLayerFilter
  98.                 ($renderer+"LayerOutliner");
  99.  
  100.             setParent ..;   // from columnLayout layerLyt
  101.  
  102.         setParent ..;
  103.  
  104.     setParent ..;
  105.  
  106.     setUITemplate -popTemplate;
  107.  
  108.     // Make sure the values are right
  109.     //
  110.     updateRenderLayerOptionsUI($renderer);
  111. }
  112.  
  113. global proc updateRenderLayerOptionsUI (string $renderer)
  114. //
  115. //  Procedure Name:
  116. //      updateRenderLayerOptionsUI
  117. //
  118. //  Description:
  119. //      Gets the real values from the option vars and sets the UI based
  120. //        on these values.  This procedure updates all of the RL/RP
  121. //        values.
  122. //
  123.     int $doLayers = `getAttr "defaultRenderGlobals.renderLayerEnable"`;
  124.  
  125.     int $doLayerPasses = `getAttr "defaultRenderGlobals.renderLayerPassEnable"`;
  126.  
  127.     int $doGlobalPasses = `getAttr "defaultRenderGlobals.renderGlobalPassEnable"`;
  128.  
  129.     int $doSubdirs = `getAttr "defaultRenderGlobals.renderLayerSubdirs"`;
  130.     
  131.     if ( $doLayers ) {
  132.         updateRenderLayerLayoutUI($renderer, true, $doLayerPasses );
  133.     }
  134.     else {
  135.         updateRenderLayerLayoutUI($renderer, false, $doGlobalPasses );
  136.     }    
  137. }
  138.  
  139. // Description: This procedure is called to update the render layout
  140. //      control.
  141. //
  142. global proc updateRenderLayerLayoutUI(
  143.     string $renderer, int $doLayers, int $doPasses )
  144. {
  145.     updateRenderLayerFilters;
  146.  
  147.     if ( $doLayers )
  148.     {
  149.         if ( $doPasses )
  150.         {
  151.             spreadSheetEditor
  152.                 -e
  153.                 -filter renderLayerFilter
  154.                 -fal {"rndr","b","cp","s","di","sp"}
  155.                 ($renderer+"LayerOutliner");
  156.  
  157.         }
  158.         else
  159.         {
  160.             spreadSheetEditor
  161.                 -e
  162.                 -filter renderLayerFilter
  163.                 -fal {"rndr"}
  164.                 ($renderer+"LayerOutliner");
  165.  
  166.         }
  167.  
  168.         attrControlGrp -edit -enable true ($renderer+"RenderLayerPassEnable");
  169.  
  170.         attrControlGrp -edit -enable false ($renderer+"RenderGlobalPassEnable");
  171.  
  172.         frameLayout
  173.             -e
  174.             -m true
  175.             ($renderer+"LayerAttrLayout");
  176.  
  177.     }
  178.     else
  179.     {
  180.         if ( $doPasses )
  181.         {
  182.             spreadSheetEditor
  183.                 -e
  184.                 -filter glblRenderFilter
  185.                 -fal {"b","cp","s","di","sp"}
  186.                 ($renderer+"LayerOutliner");
  187.  
  188.             frameLayout
  189.                 -e
  190.                 -m true
  191.                 ($renderer+"LayerAttrLayout");
  192.  
  193.         }
  194.         else
  195.         {
  196.             frameLayout
  197.                 -e
  198.                 -m false
  199.                 ($renderer+"LayerAttrLayout");
  200.         }
  201.  
  202.         attrControlGrp -edit -enable true 
  203.             ($renderer+"RenderGlobalPassEnable");
  204.  
  205.         attrControlGrp -edit -enable false 
  206.             ($renderer + "RenderLayerPassEnable");
  207.     }
  208. }
  209.  
  210. // Description: This procedure is called to update the render layer
  211. //      enabled control.
  212. //
  213. global proc updateRenderLayerEnableUI(string $renderer)
  214. {
  215.     int $doPasses;
  216.     int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`;
  217.     if ( $doLayers ) {
  218.         $doPasses = `getAttr defaultRenderGlobals.renderLayerPassEnable`;
  219.     }
  220.     else {
  221.         $doPasses = `getAttr defaultRenderGlobals.renderGlobalPassEnable`; 
  222.     }
  223.  
  224.     updateRenderLayerLayoutUI($renderer, $doLayers, $doPasses );
  225. }
  226.  
  227. // Description: This procedure is called to update the render layer
  228. //      pass enabled control.
  229. //
  230. global proc updateRenderLayerPassEnableUI(string $renderer)
  231. {
  232.     int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`;
  233.     int $doPasses = `getAttr defaultRenderGlobals.renderLayerPassEnable`;
  234.     updateRenderLayerLayoutUI($renderer, $doLayers, $doPasses );
  235. }
  236.  
  237. // Description: This procedure is called to update the render globals
  238. //      pass enable control.
  239. //
  240. global proc updateRenderGlobalPassEnableUI(string $renderer)
  241. {
  242.     int $doLayers = `getAttr defaultRenderGlobals.renderLayerEnable`;
  243.     int $doPasses = `getAttr defaultRenderGlobals.renderGlobalPassEnable`; 
  244.     updateRenderLayerLayoutUI($renderer, $doLayers, $doPasses );
  245. }
  246.